home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / editors / memcs312 / ue312pl1.zoo / estruct.h < prev    next >
C/C++ Source or Header  |  1993-12-02  |  36KB  |  1,131 lines

  1. /*    ESTRUCT:    Structure and preprocesser defined for
  2.             MicroEMACS 3.12
  3.  
  4.             (C)Copyright 1993 by Daniel Lawrence
  5.             written by Daniel Lawrence
  6.             based on code by Dave G. Conroy,
  7.                 Steve Wilhite and George Jones
  8. */
  9.  
  10. #ifdef    LATTICE
  11. #undef    LATTICE      /* don't use their definitions...use ours     */
  12. #endif
  13. #ifdef    MSDOS
  14. #undef    MSDOS
  15. #endif
  16. #ifdef    WINNT
  17. #undef    WINNT
  18. #endif
  19. #ifdef    AMIGA
  20. #undef    AMIGA
  21. #endif
  22. #ifdef    EGA
  23. #undef    EGA
  24. #endif
  25. #ifdef    CTRLZ
  26. #undef    CTRLZ
  27. #endif
  28.  
  29. /*    Program Identification.....
  30.  
  31.     PROGNAME should always be MicroEMACS for a distribution
  32.     unmodified version. People using MicroEMACS as a shell
  33.     for other products should change this to reflect their
  34.     product. Macros can query this via the $progname variable
  35. */
  36.  
  37. #define PROGNAME    "MicroEMACS"
  38. #define VERSION     "3.12"
  39.  
  40. /*    Machine/OS definitions            */
  41. /*    [Set one of these!!]            */
  42.  
  43. #define AMIGA    0            /* AmigaDOS            */
  44. #define AOSVS    0            /* Data General AOS/VS        */
  45. #define AUX     0                       /* Apple UNIX for Macintosh     */
  46. #define AVIION    0            /* Data General AViiON        */
  47. #define BSD    0            /* UNIX BSD 4.2 and ULTRIX    */
  48. #define FINDER    0            /* Macintosh OS         */
  49. #define HPUX8    0            /* HPUX HP 9000 ver 8 or less    */
  50. #define HPUX9    0            /* HPUX HP 9000 ver 9           */
  51. #define MPE    0            /* HP MPE/XL            */
  52. #define MSDOS    0            /* MS-DOS            */
  53. #define WINNT    0            /* MS-Win NT            */
  54. #define OS2    0            /* Microsoft or IBM OS/2    */
  55. #define SMOS    0            /* Supermax UNIX System V    */
  56. #define SUN    0            /* SUN v4.0            */
  57. #define TOS    1            /* ST520, TOS            */
  58. #define USG    0            /* UNIX system V        */
  59. #define V7    0            /* V7 UNIX or Coherent or BSD4.2*/ 
  60. #define VMS    0            /* VAX/VMS            */
  61. #define WMCS    0            /* Wicat's MCS            */
  62. #define XENIX    0            /* IBM-PC SCO XENIX        */
  63.  
  64. /*    Compiler definitions            */
  65. /*    [Set one of these!!]            */
  66. #define ALCYON    0    /* ALCYON Atari ST compiler */ 
  67. #define AZTEC    0    /* Aztec C 3.20e */
  68. #define DGC    0    /* Data General AOS/VS C... */
  69. #define DTL    0    /* DataLight C v3.12 */
  70. #define GCC    0    /* the GNU C compiler */
  71. #define IC    0    /* Rational Systems Instant C */
  72. #define LATTICE 0    /* Lattice 2.14 through 3.0 compilers */
  73. #define MSC    0    /* MicroSoft C compile version 3 thru 7 */
  74. #define MWC    1    /* Mark Williams C */
  75. #define TURBO    0    /* Turbo C and Borland C++ under MSDOS */
  76. #define UNIX    0    /* a standard UNIX compiler (cc) */
  77. #define ZTC    0    /* Zortech C/C++ 1.02 thru 2.10 under MSDOS */
  78.  
  79. /*    Machine stack growth direction.             */
  80. /*  [Set this to 1 if your machine stack grows UP!!!]        */
  81. /*    data general mv/eclipse series stack grows up.        */
  82. /*    dec vax series stack grows down... got it???        */
  83.  
  84. #define STACK_GROWS_UP    0
  85.  
  86. /*    Rational Systems, Inc DOS/16M dos extender allows MicroEMACS
  87.     to run in Protected Mode under MSDOS. It has a few special
  88.     requirements.                            */
  89.  
  90. #define    DOS16M    0
  91.  
  92. /*    Debugging options    */
  93. #define RAMSIZE 0    /* dynamic RAM memory usage tracking */
  94. #define RAMSHOW 0    /* auto dynamic RAM reporting */
  95. #define RAMTRCK 0    /* send debug info to MALLOC.DAT */
  96.  
  97. /*   Special keyboard/network definitions         */
  98.  
  99. #define ATKBD    0        /* AT-style keyboard with F11, F12 & grey keys */
  100. #define WANGPC    0        /* WangPC - mostly escape sequences    */
  101. #define VT100    0        /* Handle VT100 style keypad - NOT VMS. */
  102. #define KEYPAD    0        /* VMS - turn on and off application    */
  103.                 /* keypad automatically */
  104. #define XONDATA 0        /* VMS - set to force /NOTTSYNC/NOHOSTSY */
  105. #define RMSIO    0        /* VMS - skip the rotten C runtime and    */
  106.                 /* use RMS directly            */
  107. #define OPTMEM    0        /* VMS 5.0 and up - use a less standard */
  108.                 /* but more efficient memory allocator    */
  109.  
  110. /*    Terminal Output definitions        */
  111. /*    [Set one of these!!]            */
  112.  
  113. #define ANSI    0            /* ANSI escape sequences    */
  114. #define DASHER    0            /* DG Dasher 2xx/4xx crts    */
  115. #define DG10    0            /* Data General system/10    */
  116. #define FMR    0            /* Fujitsu FMR series driver    */
  117. #define HP110    0            /* HP110 screen driver        */
  118. #define HP150    0            /* HP150 screen driver        */
  119. #define I55    0            /* IBM PS55 DOS J4.0/V        */
  120. #define IBMPC    0            /* IBM-PC CGA/MONO/EGA/VGA drvr */
  121. #define MAC    0            /* Macintosh            */
  122. #define NEC    0            /* NEC-9801VM driver        */
  123. #define OS2NPM    0            /* OS/2 non-Presentation Mgr.    */
  124. #define SMG    0            /* SMG library on VMS        */
  125. #define ST52    1            /* Atari 520/1040ST screen    */
  126. #define TERMCAP 0            /* Use TERMCAP            */
  127. #define TIPC    0            /* TI Profesional PC driver    */
  128. #define VT52    0            /* VT52 terminal (Zenith).    */
  129. #define Z309    0            /* Zenith 100 PC family driver    */
  130. #define WINNTCON 0            /* Windows NT console        */
  131.  
  132. /*    Windowing system style (pick one)                */
  133.  
  134. #define WINDOW_TEXT    1        /* [default] Text mode        */
  135. #define WINDOW_XVT    0        /* using XVT/any platform    */
  136. #define WINDOW_MSWIN    0        /* MicroSoft Windows        */
  137. #define WINDOW_MSWIN32    0        /* MicroSoft Windows 32 bit API */
  138. #define WINDOW_X    0        /* X/Unix            */
  139.  
  140. /*    Language text options    (pick one)                */
  141.  
  142. #define ENGLISH 1        /* [default] */
  143. #define FRENCH    0
  144. #define SPANISH 0
  145. #define GERMAN    0
  146. #define DUTCH    0
  147. #define PLATIN    0        /* Pig Latin */
  148. #define JAPAN    0
  149. #define LATIN    0        /* real Latin */
  150.  
  151. /*    Configuration options    */
  152.  
  153. #define TYPEAH    1    /* type ahead causes update to be skipped    */
  154. #define DEBUGM    1    /* $debug triggers macro debugging        */
  155. #define LOGFLG    0    /* send all executed commands to EMACS.LOG    */
  156. #define VISMAC    0    /* update display during keyboard macros    */
  157. #define CTRLZ    0    /* add a ^Z at end of files under MSDOS only    */
  158. #define CLEAN    0    /* de-alloc memory on exit            */
  159. #define CALLED    0    /* is emacs a called subroutine? or stand alone */
  160.  
  161. #define REVSTA    1    /* Status line appears in reverse video     */
  162. #define COLOR    1    /* color commands and windows            */
  163.  
  164. #define FILOCK    1    /* file locking under unix BSD 4.2        */
  165. #define ISRCH    1    /* Incremental searches like ITS EMACS        */
  166. #define FLABEL    0    /* function key label code [HP150]        */
  167. #define CRYPT    1    /* file encryption enabled?            */
  168. #define MAGIC    1    /* include regular expression matching?     */
  169. #define MOUSE    1    /* Include routines for mouse actions        */
  170. #define NOISY    1    /* Use a fancy BELL if it exists        */
  171. #define CTAGS    0    /* include vi-like tagging?            */
  172. #define SPEECH    0    /* spoken EMACS, for the sight impared [not ready] */
  173. #define VARARG    1    /* use varargs.h for mlwrite()            */
  174.  
  175. /*    Character set options        */
  176. /*    [Set one of these!!]        */
  177. #define ASCII    1    /* always using ASCII char sequences for now    */
  178. #define EBCDIC    0    /* later IBM mainfraim versions will use EBCDIC */
  179.  
  180. /* handle constant and voids properly */
  181.  
  182. #if    VMS
  183. #define CONST    readonly
  184. #define VOID    void
  185. #define NOSHARE noshare
  186. #else
  187. #if    AOSVS
  188. #define CONST $shared $align(1)     /* fake a  const */
  189. #define VOID
  190. #define NOSHARE $low32k $align(1)   /* attempt to optimize read/write vars. */
  191. #else
  192. #if    __STDC__ || MSC || TURBO || DTL || GCC
  193. #define CONST    const
  194. #define VOID    void
  195. #define NOSHARE
  196. #else
  197. #define CONST
  198. #define VOID
  199. #define NOSHARE
  200. #endif
  201. #endif
  202. #endif
  203.  
  204. /*    System dependant library redefinitions, structures and includes */
  205.  
  206. /*    multibyte character support?    */
  207.  
  208. #if    NEC || FMR || I55
  209. #define DBCS    1    /* double byte character sets enabled */
  210. #define INSDEL    1    /* use insert/delete line display optimizations */
  211.  
  212. /* define DBCS prefix bytes */
  213. #define is2char(ch) (((ch&0xff) >= 0x81 && (ch&0xff) <= 0x9f) || ((ch&0xff) >=0xe0 && (ch&0xff) <= 0xfc))
  214.  
  215. #else
  216. #define DBCS    0
  217. #define INSDEL    0
  218. #endif
  219.  
  220. /*    Prototypes in use?    */
  221.  
  222. #if    MSC || TURBO || IC || DTL || VMS || GCC || ZTC
  223. #define PROTO    1
  224. #else
  225. #define PROTO    0
  226. #endif
  227.  
  228. /*    the following define allows me to initialize unions...
  229.     otherwise we make them structures (like the keybinding table)  */
  230.  
  231. #if    __STDC__ || MSC || TURBO || IC || DTL || ZTC
  232. #define ETYPE    union
  233. #else
  234. #define ETYPE    struct
  235. #endif
  236.  
  237. /* Instant C can't do stat()s. Arrrg. No file locking for you */
  238. #if    IC && MSDOS
  239. #undef FILOCK
  240. #define FILOCK    0
  241. #endif
  242.  
  243. /* Mark Williams/Atari has no standard or varargs or directory functions */
  244. #if    TOS & MWC
  245. #undef VARARG
  246. #define    VARARG    0
  247. #undef    FILOCK
  248. #define    FILOCK    0
  249. #endif
  250.  
  251. /* MS-Windows */
  252.  
  253. #if     WINNT || WINDOW_MSWIN || WINDOW_MSWIN32
  254. #if     WINDOW_MSWIN32
  255. #undef  WINDOW_MSWIN
  256. #define WINDOW_MSWIN    1
  257. #endif
  258. #if     WINDOW_MSWIN && WIN